//@ts-nocheck
import {Dimensions} from 'react-native';
import {router} from 'expo-router'
import AsyncStorage from '@react-native-async-storage/async-storage';
export const size = s =>Dimensions.get('window').width / 375 * s;



type TitokotoParams = {
    c?:'a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'i'|'j'|'k'|'l'
    min_length?:number
    max_length?:number
}

/**
 * 获取一言
 * @param params
 */
export const hitokoto = (params?:TitokotoParams)=>{
    const baseUrl = 'https://v1.hitokoto.cn/';
    let query = '';
    if (params){
        query = '?' + Object.keys(params).map(key=>`${key}=${params[key]}`).join('&');
    }
    return fetch(baseUrl + query,{
        method:'get',
    }).then(res=>res.json()).then(res=>{
        return res;
    }).catch(()=>{
        return null;
    });
};

/**
 * 保留字符串前几位和后几位，中间以省略号显示；
 * 若字符串长度不足以同时保留前后，则直接返回省略号。
 * @param str 原字符串
 * @param head 保留前几位，默认 4
 * @param tail 保留后几位，默认 4
 * @param ellipsis 省略号符号，默认 '...'
 */
export const keepHeadTailWithEllipsis = (str:string, head:number = 4, tail:number = 4, ellipsis:string = '****')=>{
    if (str == null) return '';
    const text = String(str);
    const h = Math.max(0, head | 0);
    const t = Math.max(0, tail | 0);
    if (text.length <= h + t) {
        return ellipsis;
    }
    return text.slice(0, h) + ellipsis + text.slice(text.length - t);
};

/**
 * 保留两位小数，禁止四舍五入（直接截断）
 * @param num 要处理的数字
 * @returns 保留两位小数的字符串
 */
export const keepTwoDecimalsNoRound = (num: number | string): string => {
    if (num == null || num === '' || num+''=='0' || num==undefined ) return '0.00';
    const numStr = String(num);
    const dotIndex = numStr.indexOf('.');
    
    if (dotIndex === -1) {
        // 没有小数点，直接添加.00
        return numStr + '.00';
    }
    
    if (dotIndex + 3 >= numStr.length) {
        // 小数点后不足两位，补0
        return numStr.padEnd(dotIndex + 3, '0');
    }
    
    // 小数点后超过两位，直接截断到两位
    return numStr.substring(0, dotIndex + 3);
};

/**
 * 将 ISO 日期格式转换为年月日时分秒格式
 * @param dateStr ISO 格式的日期字符串，如 "2025-09-22T15:11:56"
 * @returns 格式化后的日期字符串，如 "2025年09月22日 15:11:56"
 */
export const formatISODateToDateTime = (dateStr: string): string => {
    if (!dateStr) return '';
    
    try {
        const date = new Date(dateStr);
        
        // 检查日期是否有效
        if (isNaN(date.getTime())) {
            return '';
        }
        
        const year = date.getFullYear();
        const month = String(date.getMonth() + 1).padStart(2, '0');
        const day = String(date.getDate()).padStart(2, '0');
        const hours = String(date.getHours()).padStart(2, '0');
        const minutes = String(date.getMinutes()).padStart(2, '0');
        const seconds = String(date.getSeconds()).padStart(2, '0');
        
        return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    } catch (error) {
        console.error('日期格式转换失败:', error);
        return '';
    }
};

export const loginOut = async() => {
    await AsyncStorage.setItem('token', '');
    await AsyncStorage.setItem('userInfo', '');
    await AsyncStorage.setItem('login', 'false');
    router.dismissAll();  // Convert boolean to string
    router.replace('/pages/auth/LoginScreen');
}
